package org.huawei260.TiKu.ODsuanfa;

import java.util.Scanner;

/**
 * @Author: qingle
 * @Date: 2024/10/28-16:11
 * @Description: 2538 【模拟】2024E整数对最小和
 *
 * 题目描述
 * 给定两个整数数组array1、array2，数组元素按升序排列。假设从array1、array2中分别取出一个元素可构成一对元素，现在需要取出k对元素，并对取出的所有元素求和计算和的最小值。
 *
 * 注意：两对元素如果对应于array1、array2中的两个下标均相同，则视为同一对元素。
 *
 * 输入格式
 * 输入两行数组array1、array2，每行首个数字为数组大小size(0 < size <= 100)
 *
 * 0 < array1[i] <= 1000
 *
 * 0 < array2[i] <= 1000
 *
 * 接下来一行为正整数k 0 < k <= array1.size()*array2.size()
 *
 * 输出格式
 * 满足要求的最小和
 * 输入样例    复制
 * 3 1 1 2
 * 3 1 2 3
 * 2
 * 输出样例    复制
 * 4
 *
 * @version: 1.0
 */
public class E_2024E_2538__模拟整数对最小和 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] nums = new int[n];
		for (int i = 0; i < n; i++) {
			nums[i] = sc.nextInt();
		}
		sc.nextLine();

		int m = sc.nextInt();
		int[] nums2 = new int[m];
		for (int i = 0; i < m; i++) {
			nums2[i] = sc.nextInt();
		}

		Integer target = sc.nextInt();
		System.out.println(getResult(nums, nums2, target));
	}

	private static int getResult(int[] nums, int[] nums2, int target) {

		int res = Integer.MAX_VALUE;
		int n = nums.length;
		int m = nums2.length;
		for (int i = 0; i < target; i++) {
			for (int j = 0; j < target; j++) {
//				res = Math.min(res, nums[i] + nums2[j]);
				res += nums[i] + nums2[j];
			}
		}
		return res;

	}
}
